// 服务器的访问构成
const Koa = require('koa');
// 原生
let url = require('url');

let app = new Koa();
// app.use((ctx, next) => {
//   // ctx ---> context 上下文
//   // res === ctx.res; req === ctx.req
//   // ctx.response; ctx.request;

//   // 原生写法
//   // let urlObj = url.parse(ctx.req.url);
//   // console.log(urlObj.query.name);
//   // koa写法
//   // console.log(ctx.query.name);
//   // console.log(ctx.request.query.name);

//   ctx.body = '你好'; // koa不用设置头部了（编码）
// });

// 中间件
let middleware1 = async function (ctx, next) {
  ctx.body = 'hello';
  console.log('one');

  await new Promise(resolve => {
    setTimeout(() => {
      console.log('异步');
      resolve();
    }, 1000);
  })

  next();
  console.log('end');
}
let middleware2 = function (ctx, next) {
  console.log('two');
  ctx.body = 'world';
}

app.use(middleware1);
app.use(middleware2);

app.listen(3000);